/**
 * 某某页面
 * @author: leon
 * @create: 2018-05-21 10:01
 */

 import Vue from 'vue';

 const bus = new Vue();
 
 export default {
     /**
      * 注册全局事件
      * @param eventName 事件名称
      * @param handler 事件处理函数
      * @param scope vm对象，一般传this 建议必须要传（页面的this），自动销毁功能
      * @param once 是否单次注册
      */
     on(eventName, handler, scope = null, once = false) {
         if (once) {
             bus.$once(eventName, handler);
             return;
         }
         bus.$on(eventName, handler);
         if (scope) {
             let originalDestroy = scope.$destroy;
             scope.$destroy = function () {
                 bus.$off(eventName, handler);
                 originalDestroy.call(this);
             }
         }
     },
 
     /**
      * 触发事件
      * @param eventName 要触发的事件名称
      * @param data 事件对象
      */
     emit(eventName, data = {}) {
         bus.$emit(eventName, data);
     }
 };
 
 